// app.js - 小程序入口文件
App({
  /**
   * 全局数据
   */
  globalData: {
    openid: null,     // 用户openid
    userInfo: null    // 用户信息
  },
  
  onLaunch: function() {
    // 初始化云环境
    wx.cloud.init({
      env: 'cloudbase-9gjlqj692a73ffdf',
      traceUser: true
    })
    
    console.log('小程序启动，开始获取openid')
    
    // 获取用户openid
    this.getOpenid()

  },
  
  // 获取用户openid并保存到数据库
  async getOpenid() {
    try {
      console.log('开始调用login云函数...')
      
      // 调用云函数获取openid
      const { result } = await wx.cloud.callFunction({
        name: 'login'
      })
      
      console.log('云函数调用结果:', result)
      
      if (result && result.openid) {
        this.globalData.openid = result.openid
        console.log('获取到openid:', result.openid)
        
        // 检查用户是否已存在
        const db = wx.cloud.database()
        try {
          const userRes = await db.collection('users').where({
            openid: result.openid
          }).get()
          
          // 如果用户不存在，则添加到数据库
          if (userRes.data.length === 0) {
            console.log('用户不存在，添加到数据库')
            await db.collection('users').add({
              data: {
                openid: result.openid,
                create_time: db.serverDate()
              }
            })
            console.log('用户添加成功')
          } else {
            console.log('用户已存在')
          }
        } catch (dbErr) {
          console.error('数据库操作失败:', dbErr)
        }
      } else {
        console.error('云函数返回了结果，但没有openid:', result)
      }
    } catch (err) {
      console.error('获取openid失败:', err)
      
      // 尝试输出更详细的错误信息
      if (err && err.errMsg) {
        console.error('错误信息:', err.errMsg)
      }
      
      if (err && err.errCode) {
        console.error('错误代码:', err.errCode)
      }
    }
  }
})
